package projeto.lp2.grupo6.testes;

import java.util.ArrayList;
import java.util.List;

import org.junit.Assert;
import org.junit.Test;

import projeto.lp2.grupo6.logica.Recomendacao;
import projeto.lp2.grupo6.logica.RecomendacaoPersonalizada;
import projeto.lp2.grupo6.logica.Usuario;

public class RecomendacaoTest {

	@Test(expected=Exception.class)
	public void testSetListaUsuarios1() throws Exception {
		List<Usuario> listaUsuariosP = null;
		Usuario u1 = null;
		@SuppressWarnings("unused")
		Recomendacao rec = new RecomendacaoPersonalizada(listaUsuariosP, u1);
	}
	
	@Test(expected=Exception.class)
	public void testSetListaUsuarios2() throws Exception {
		List<Usuario> listaUsuariosP = new ArrayList<Usuario>();
		Usuario u1 = null;
		@SuppressWarnings("unused")
		Recomendacao rec = new RecomendacaoPersonalizada(listaUsuariosP, u1);
	}
	
	@Test(expected=Exception.class)
	public void testSetListaUsuarios3() throws Exception {
		List<Usuario> listaUsuariosP = new ArrayList<Usuario>();
		listaUsuariosP.add(new Usuario("nome1"));
		Usuario u1 = null;
		@SuppressWarnings("unused")
		Recomendacao rec = new RecomendacaoPersonalizada(listaUsuariosP, u1);
	}
	
	@Test
	public void testSetListaUsuarios4() throws Exception {
		try {
			List<Usuario> listaUsuariosP = new ArrayList<Usuario>();
			listaUsuariosP.add(new Usuario("nome1"));
			Usuario u1 = new Usuario("nome2");
			@SuppressWarnings("unused")
			Recomendacao rec = new RecomendacaoPersonalizada(listaUsuariosP, u1);
		}
		catch(Exception e) {
			Assert.fail("Nao esperava erro em setListaUsuarios feita corretamente");
		}
	}

	@Test
	public void testGetListaUsuarios() {
		try {
			List<Usuario> listaUsuariosP = new ArrayList<Usuario>();
			listaUsuariosP.add(new Usuario("nome1"));
			Usuario u1 = new Usuario("nome2");
			Recomendacao rec = new RecomendacaoPersonalizada(listaUsuariosP, u1);
			Assert.assertEquals(rec.getListaUsuarios(), listaUsuariosP);
		}
		catch(Exception e) {
			Assert.fail("Nao esperava erro em getListaUsuarios feita corretamente");
		}
	}
}
